package controllers;

import java.util.Set;

import models.GrupoMuscular;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import play.mvc.Security;
import dao.DAOGrupoMuscular;

@Security.Authenticated(Seguranca.class)
public class GrupoMuscularControle extends Controller {

	private static Form<GrupoMuscular> formGrupoMuscular = new Form<GrupoMuscular>(GrupoMuscular.class);
	
	public static Result index(){
		return listarView("", "");
	}
	
	public static Result cadastrarView(){
		return ok(views.html.grupoMuscular.cadastrar.render());
	}
	
	public static Result editarView(int id){
		
		DAOGrupoMuscular dao = new DAOGrupoMuscular();
		GrupoMuscular grupo = new GrupoMuscular();
		
		try{
			grupo = dao.select(id);
			return ok(views.html.grupoMuscular.editar.render(grupo));
		}catch(Exception e){
			return listarView("alert-error", e.getMessage());
		}
	}
	

	public static Result listarView(String tipoAlerta, String mensagem){
		DAOGrupoMuscular dao = new DAOGrupoMuscular();
		System.out.println("Mensagem em listarView: "+ mensagem);
		try {
			return ok(views.html.grupoMuscular.listar.render(dao.select(), tipoAlerta, mensagem));
		} catch (Exception e) {
			return ok(views.html.grupoMuscular.listar.render(null, tipoAlerta, e.getMessage() +"<br/>"+ mensagem));
		}
	}
	
	public static Result cadastrar(){
		Form<GrupoMuscular> novoGrupo = formGrupoMuscular.bindFromRequest();
		GrupoMuscular grupo = novoGrupo.get();
		
		try{
			grupo.cadastrar();
			return listarView("alert-success", "Grupo Muscular cadastrado com sucesso.");
		}catch(Exception e){
			return listarView("alert-error", e.getMessage());
		}
	}
	
	public static Result editar(){
		Form<GrupoMuscular> novoGrupo = formGrupoMuscular.bindFromRequest();
		GrupoMuscular grupo = novoGrupo.get();
		
		try{
			grupo.editar();
			return listarView("alert-success", "Grupo Muscular editado com sucesso.");
		}catch(Exception e){
			return listarView("alert-error", e.getMessage());
		}
		
	}
	
	public static Result remover(){
		Form<GrupoMuscular> novoGrupo = formGrupoMuscular.bindFromRequest();
		GrupoMuscular grupo = novoGrupo.get();
		
		try{
			grupo.remover();
			return listarView("alert-success", "Grupo Muscular removido com sucesso.");
		}catch(Exception e){
			return listarView("alert-error", e.getMessage());
		}
	}
	
}
